package com.liuxinlong.modules.common.service;

import java.util.List;

import com.liuxinlong.modules.common.entity.CommonSelectDto;

/**
 * 通用下拉选项数据接口
 *
 * @author liuxinlong@hotwater.com.cn
 * @version 1.0.0
 * @since 2022-01-14
 */
public interface CommonSelectService {

    /**
     * 查询用户部门
     *
     * @return 用户部门列表
     */
    List<CommonSelectDto> queryDepartmentSelect();

    /**
     * 查询用户
     *
     * @return 用户列表
     */
    List<CommonSelectDto> queryUserSelect();

    /**
     * 查询用户角色
     *
     * @return 用户角色列表
     */
    List<CommonSelectDto> queryRoleSelect();

    /**
     * 查询岗位角色
     *
     * @return 用户岗位列表
     */
    List<CommonSelectDto> queryPostSelect();

    /**
     * 查询用户等级
     *
     * @return 用户等级列表
     */
    List<CommonSelectDto> queryUserLevelSelect();

    /**
     * 查询小队
     *
     * @return 小队列表
     */
    List<CommonSelectDto> queryTeamSelect();

    /**
     * 查询设计标准列表
     *
     * @return 设计标准列表
     */
    List<CommonSelectDto> queryDesignStandardSelect();

    /**
     * 查询标准分类
     *
     * @return 标准分类信息列表
     */
    List<CommonSelectDto> queryParentClassificationSelect();

    /**
     * 查询问题处理类型
     *
     * @return 问题处理类型信息列表
     */
    List<CommonSelectDto> queryDealTypeSelect();

    /**
     * 查询问题状态信息列表
     *
     * @return 问题状态信息列表
     */
    List<CommonSelectDto> queryQuestionStatusSelect();

    /**
     * 查询论坛板块列表
     *
     * @return 论坛板块列表
     */
    List<CommonSelectDto> queryBarPlateSelect();

    /**
     * 查询用户组列表
     *
     * @return 用户组列表
     */
    List<CommonSelectDto> queryUserGroupSelect();

    /**
     * 查询文件业务类型
     *
     * @return 文件业务类型信息
     */
    List<CommonSelectDto> queryFileBusinessSelect();

    /**
     * 查询物料信息
     *
     * @param keyword 查询关键字
     * @param region  物料所属域
     * @return 物料信息
     */
    List<CommonSelectDto> queryMaterialSelect(String keyword, String region);

    /**
     * 查询标准分类
     *
     * @return 标准分类信息列表
     */
    List<CommonSelectDto> querySubClassificationList(String id);

    /**
     * 查询培训文档标题
     *
     * @return 培训文档标题信息列表
     */
    List<CommonSelectDto> queryTrainSelect();

    /**
     * 查询培训文档业务分类
     *
     * @return 培训文档业务分类列表
     */
    List<CommonSelectDto> queryTrainBusinessSelect();

    /**
     * 查询培训文档专家子标题
     *
     * @return 培训文档专家子标题信息列表
     */
    List<CommonSelectDto> queryExpertSubSelect();

    /**
     * 查询消息推送来源
     *
     * @return 消息推送来源信息列表
     */
    List<CommonSelectDto> queryMessageSourceSelect();

    /**
     * 查询培训文档专利子标题
     *
     * @return 培训文档专利子标题信息列表
     */
    List<CommonSelectDto> queryPatentSubSelect();

    /**
     * 查询论坛积分关联业务
     *
     * @return 论坛积分关联业务信息
     */
    List<CommonSelectDto> queryPointsBusinessSelect();

    /**
     * 查询论坛积分明细来源信息
     *
     * @return 论坛积分明细来源信息
     */
    List<CommonSelectDto> queryPointsSourceSelect();

    /**
     * 查询培训文档子分类
     *
     * @param business 父级业务类型
     * @return 培训文档子分类列表
     */
    List<CommonSelectDto> queryTrainSubSelect(String business);

    /**
     * 查询消息推送内容分类
     *
     * @return 消息推送内容分类列表
     */
    List<CommonSelectDto> queryMessageContentSelect();

    /**
     * 查询专家组分类
     *
     * @return 专家组列表
     */
    List<CommonSelectDto> queryExpertGroupSelect();

    /**
     * 查询专家列表
     *
     * @return 专家列表
     */
    List<CommonSelectDto> queryExpertSelect(String type);

    /**
     * 查询缓存key列表
     *
     * @return 缓存key列表
     */
    List<CommonSelectDto> queryRedisSelect();

    /**
     * 查询物料成本卷积状态列表
     *
     * @return 物料成本卷积状态列表
     */
    List<CommonSelectDto> queryConvolutionStatusSelect();

    /**
     * 查询活动信息列表
     *
     * @param status 状态
     * @return 活动信息列表
     */
    List<CommonSelectDto> queryBarLuckSelect(int status);

    /**
     * 查询礼品信息列表
     *
     * @param status 状态
     * @return 礼品信息列表
     */
    List<CommonSelectDto> queryBarPresentSelect(int status);

    /**
     * 查询专利部门列表
     *
     * @return 专利部门列表
     */
    List<CommonSelectDto> queryPatentDepSelect();

    /**
     * 查询专利产品品类列表
     *
     * @return 专利产品品类列表
     */
    List<CommonSelectDto> queryPatentProductSelect();

    /**
     * 查询资产项目类型列表
     *
     * @return 资产项目类型列表
     */
    List<CommonSelectDto> queryAssetsProjectTypeSelect();

    /**
     * 查询资产类型列表
     *
     * @return 资产类型列表
     */
    List<CommonSelectDto> queryAssetsTypeSelect();

    /**
     * 查询固资预算列表
     *
     * @return 固资预算列表
     */
    List<CommonSelectDto> queryAssetsBudgetSelect();

    /**
     * 查询固资部门列表
     *
     * @return 固资部门列表
     */
    List<CommonSelectDto> queryAssetsDepartmentSelect();

    /**
     * 查询ecn变更类型列表
     *
     * @return ecn变更类型列表
     */
    List<CommonSelectDto> queryEcnChangeTypeSelect();

    /**
     * 查询有效项目列表
     *
     * @return 有效项目列表
     */
    List<CommonSelectDto> queryProjectSelect();

    /**
     * 查询设计差异点列表
     *
     * @param id 项目id
     * @return 设计差异点列表
     */
    List<CommonSelectDto> queryPatentRiskSelect(String id);

    /**
     * 查询流程业务类型列表
     *
     * @return 流程业务类型列表
     */
    List<CommonSelectDto> queryWorkflowTypeSelect();

    /**
     * 查询流程用户组列表
     *
     * @return 流程用户组列表
     */
    List<CommonSelectDto> queryWorkflowGroupSelect();

    /**
     * 查询项目阶段列表
     *
     * @return 项目阶段列表
     */
    List<CommonSelectDto> queryProjectStageSelect();

    /**
     * 查询流程配置列表
     *
     * @return 流程配置列表
     */
    List<CommonSelectDto> queryWorkflowConfigSelect();

    /**
     * 查询流程配置列表
     *
     * @return 流程配置列表
     */
    List<CommonSelectDto> queryInvestmentExpensesTypeSelect();

    /**
     * 查询流程配置列表
     *
     * @return 流程配置列表
     */
    List<CommonSelectDto>  queryInvestmentLossRateTypeSelect();

    /**
     * 查询流程配置列表
     *
     * @return 流程配置列表
     */
    List<CommonSelectDto>  queryInvestmentTurnoverTypeSelect();

}
